import { defineStore } from 'pinia'

import { ref, reactive } from 'vue'

export const useEnumStore = defineStore("enumStoreId", () => {
  type AllKey = {
    [key: string]: string;
  };
  // 订单状态枚举 存量包 --》 联合会员是一个更多的
  const orderStatus = ref([
    { key: 1, value: "初始化", id: 1 },
    { key: 2, value: "初始化成功", id: 2 },
    { key: 3, value: "初始化失败", id: 3 },
    { key: 4, value: "订购中", id: 4 },
    { key: 5, value: "订购成功", id: 5 },
    { key: 6, value: "订购失败", id: 6 },
    { key: 7, value: "其他", id: 7 }
  ])
  // 运营商枚举
  const ispEnum = ref([
    { key: "ChinaMobile", value: "中国移动", id: 1 },
    { key: "ChinaUnicom", value: "中国联通", id: 2 },
    { key: "ChinaTelecom", value: "中国电信", id: 3 },
    { key: "ChinaBroadnet", value: "中国广电", id: 4 },
    { key: "Other", value: "其他", id: 5 }
  ])
  const isIsp = ref<AllKey>({
    "ChinaMobile": "中国移动",
    "ChinaUnicom": "中国联通",
    "ChinaTelecom": "中国电信",
    "ChinaBroadnet": "中国广电",
    "Other": "其他",
  })
  // 用户状态
  const userEnabled = ref<AllKey>({
    "Y": "启用",
    "N": "禁用"
  })
  // 角色状态
  const roleStatus = ref<AllKey>({
    "1": "启用",
    "2": "禁用"
  })
  // 是否退订
  const isUnsubscribe = ref<AllKey>({
    "1": "是",
    "2": "否"
  })
  //是否展示
  const isShow = ref<AllKey>({
    "1": "是",
    "2": "否"
  })
  // 是否统计
  const isStatistics = ref<AllKey>({
    "1": "是",
    "2": "否"
  })
  const productType = ref<any>([
    { key: 1, value: "存量包产品", id: 1 },
    { key: 2, value: "联合会员产品", id: 2 },
    { key: 3, value: "自营产品", id: 3 },
    { key: 4, value: "其他", id: 4 }
  ])
//产品基础链接状态枚举
  const ProductLinkConfigStatusEnum = ref<any>([
    { key: 1, value: "初始化", id: 1 },
    { key: 2, value: "启用", id: 2 },
    { key: 3, value: "禁用", id: 3 },
  ])
  const supplyerType = ref<any>([
    { key: 1, value: "存量包供应商", id: 1 },
    { key: 2, value: "联合会员供应商", id: 2 },
    { key: 3, value: "权益供应商", id: 3 },
    { key: 4, value: "其他供应商", id: 4 },
  ])

  // 支付状态
  const paymentStatusList = ref<any>([
    { key: 1, value: "支付成功", id: 1 },
    { key: 2, value: "支付失败", id: 2 },
    { key: 3, value: "解约成功", id: 3 },
    { key: 4, value: "解约失败", id: 4 },
    { key: 5, value: "退款成功", id: 5 },
    { key: 6, value: "退款失败", id: 6 },
  ])

  // 支付类型
  const paymentTypeList = ref<any>([
    { key: 1, value: "付款", id: 1 },
    { key: 2, value: "解约", id: 2 },
    { key: 3, value: "退款", id: 3 },
  ])

  //
  const paymentMethodList = ref<any>([
    { key: 1, value: "支付宝", id: 1 },
    { key: 2, value: "微信", id: 2 },
    { key: 3, value: "云闪付", id: 3 },
    { key: 4, value: "苹果商店", id: 4 },
    { key: 5, value: "其他", id: 5 }
  ])

  /* 
 // 初始化成功、初始化失败    支付(扣款)成功、支付(扣款)失败    解约成功、解约失败    退款成功、退款失败
    INIT_SUCCESSFUL(1,"初始化成功"),
    INIT_FAILED(2,"初始化失败"),
    SIGN_SUCCESSFUL(3,"签约成功"),
    SIGN_FAILED(4,"签约失败"),
    PAYMENT_SUCCESSFUL(5,"支付(扣款)成功"),
    PAYMENT_FAILED(6,"支付(扣款)失败"),
    RESCIND_SUCCESSFUL(7,"解约成功"),
    RESCIND_FAILED(8,"解约失败"),
    REFUND_SUCCESSFUL(9," 退款成功"),
    REFUND_FAILED(10,"退款失败"),
    RESCIND_IN_PROGRESS(11,"解约中"),
    REFUND_IN_PROGRESS(12," 退款中"),
    OTHER(-1,"其他(大状态之间的中间态)")
    */
  //订单状态详情枚举
  const orderStatusDetails = ref<AllKey>({
    "1": "初始化成功",
    "2": "初始化失败",
    "3": "签约成功",
    "4": "签约失败",
    "5": "支付(扣款)成功",
    "6": "支付(扣款)失败",
    "7": "解约成功",
    "8": "解约失败",
    "9": "退款成功",
    "10": "退款失败",
    "11": "解约中",
    "12": "退款中",
    "-1": "其他",
  })
  //是否展示
  const beforeIsSign = ref<AllKey>({
    "1": "是",
    "2": "否"
  })
  // 订单状态枚举 
  const orderProcessStatus = ref<AllKey>({
    "1": "初始",
    "2": "签约",
    "3": "解约",
    "4": "退款"
  })
  // 订单来源
  const orderType = ref<AllKey>({
    "1": "H5",
    "2": "微信小程序"
  })
  // 黑名单和白名单
  const blackAndWhiteType = ref<AllKey>({
    "1": "手机号",
    "2": "OpenId-微信",
    "3": "UserId-支付宝"
  })
  // 立减金类型
  const reductionVoucherType = ref<AllKey>({
    "1": "现金券",
    "2": "银行",
    "3": "支付宝",
    "4": "微信"
  })
  // 报价操作
  const quotaOperateType = ref<AllKey>({
    "1": "增加",
    "2": "减少"
  })
  // 过期期限类型

  const expiryPeriodType = ref<any>([
    { key: 1, value: "小时", id: 1 },
    { key: 2, value: "天", id: 2 },
    { key: 3, value: "月", id: 3 },
    { key: 4, value: "年", id: 4 },
  ])


  const schemeType = ref<any>([
    { key: 1, value: "基础（连续包月）", id: 1 },
    { key: 2, value: "支付（首期优惠）和 签约（续约优惠）", id: 2 }
  ])

  const packageUseType = ref<any>([
    { key: 1, value: "任选其一", id: 1 },
    { key: 2, value: "全部使用", id: 2 }
  ])
  const schemeType1 = ref<any>([
    { key: "1", value: "基础（连续包月）" },
    { key: "2", value: "支付（首周优惠）" },
    { key: "2", value: "签约（续约优惠）" }
  ])


  const schemeConfigletailsType = ref<any>([
    { key: 1, value: "立减金", id: 1 },
    { key: 2, value: "虚拟会员", id: 2 },
    { key: 3, value: "停车券", id: 3 },
    { key: 4, value: "加油券", id: 4 },
  ])

  const discountsType = ref<AllKey>({
    "1": "基础",
    "2": "签约",
    "3": "首期",
  })


  const grantType = ref<any>([
    { key: 1, value: "直接发送", id: 1 },
    { key: 2, value: "用户领取", id: 2 }
  ])
  const allProductType = ref<any>([
    { key: 1, value: "联合会员", id: 1 },
    { key: 2, value: "自营会员", id: 2 },
    { key: 3, value: "存量包", id: 3 },
    { key: 4, value: "其他", id: 4 }
  ])
  const templateType = ref<any>([
    { key: 1, value: "验证码", id: 1 },
    { key: 2, value: "促销信息", id: 2 },
    { key: 3, value: "通知", id: 3 }
  ])
  const sendStatus = ref<any>([
    { key: 1, value: "发送中", id: 1 },
    { key: 2, value: "发送成功", id: 2 },
    { key: 3, value: "发送失败", id: 3 }
  ])

  const grantStatus = ref<any>([
    { key: 1, value: "未发送", id: 1 },
    { key: 2, value: "发送中", id: 2 },
    { key: 3, value: "发送成功", id: 3 },
    { key: 4, value: "发送失败", id: 4 }
  ])
  const receiveStatus = ref<any>([
    { key: 1, value: "未领取", id: 1 },
    { key: 2, value: "领取中", id: 2 },
    { key: 3, value: "领取成功", id: 3 },
    { key: 4, value: "领取失败", id: 4 }
  ])
  const redeemStatus = ref<any>([
    { key: 1, value: "未核销", id: 1 },
    { key: 2, value: "已核销", id: 2 },
    { key: 3, value: "已过期", id: 3 },
  ])
  // 虚拟会员 领取类型
  const virtualType = ref([
    { key: 1, value: "银行卡领取", id: 1 },
    { key: 2, value: "虚拟会员领取", id: 2 },
  ])

  // 上报类型
  const reportType = ref([
    { key: 1, value: "自动上报", id: 1 },
    { key: 2, value: "手动上报", id: 2 },
  ])
  // 上报产品
  const reportProductType = ref([
    { key: 1, value: "存量包", id: 1 },
    { key: 2, value: "联合会员", id: 2 },
  ])
  const reportStatus = ref([
    { key: -1, value: "无需上报", id: -1 },
    { key: 1, value: "未上报", id: 1 },
    { key: 2, value: "上报成功", id: 2 },
    { key: 3, value: "上报失败", id: 3 },
  ])

  // 产品投放开关
  const productPutSwitch=  ref([
    { key: 1, value: "已投放", id: 1 },
    { key: 2, value: "未投放", id: 2 },
  ])
  return {
    orderStatus, ispEnum, userEnabled, roleStatus, isUnsubscribe, isShow, isStatistics, productType,
    paymentStatusList, paymentTypeList, paymentMethodList, orderStatusDetails, orderProcessStatus, orderType,
    blackAndWhiteType, isIsp, beforeIsSign, quotaOperateType, reductionVoucherType, expiryPeriodType, schemeType, schemeConfigletailsType,
    discountsType, grantType, schemeType1, allProductType, templateType, sendStatus, packageUseType, receiveStatus, grantStatus, redeemStatus, supplyerType, virtualType,
    reportType,reportStatus,reportProductType,ProductLinkConfigStatusEnum,productPutSwitch
  }
})